CLEAR ,35000 A$="B.S.B " : x=1 : S=2000 : sp$=SPACE$(40) : ss=1 SCREEN 2,640,215,4,2 WINDOW 2," (c) by BSB ",,0,2 Schriftname$="topaz.font"+CHR$(0) GOSUB stil DIM gef(200),aa(20),bb(20),cc(20),dd(20),ee(20),ff(20),gg(20),hh(20),ii(20),jj(20),kk(20),ll(20),mm(20),NN(20),oo(20),pp(20),qq(20),rr(20),ss(20),tt(20),uu(20),vv(20),ww(20),xxx(20),yyy(20),zzz(20) MENU 5,0,0,"Druck" MENU 5,1,1,"Schreibm." MENU 5,2,1,"Briefkopf" PALETTE 0,0.1,0.3,0.3 PALETTE 2,0,0,0 COLOR 2,0 LOCATE 2,2 : PRINT A$ ; LOCATE 2,71 : PRINT A$ ; LOCATE 24,2 : PRINT A$ ; LOCATE 24,71 : PRINT A$ ; COLOR 1,0 r=-1 COLOR 9,0 LOCATE 7,36 : PRINT "A V S B D P" COLOR 10,0 LOCATE 13,35 : PRINT "copyright by"; COLOR 2,0 LOCATE 16,30 : PRINT "Baby-Soft Bielefeld" ; FOR z=1 TO 50 SCROLL (1,120)-(600,130),1,0 NEXT z BEEP mausabf: IF x<100 THEN SCROLL (1,120)-(600,130),r,0 IF x=100 THEN r=1 : BEEP IF x=200 THEN r=-1 : x=0 : BEEP IF x>100 THEN SCROLL (1,120)-(600,130),r,0 x=x+1 ON MOUSE GOSUB rollen MOUSE ON GOTO mausabf rollen: COLOR 1,10 FOR x=1 TO 105 SCROLL (0,0)-(640,100),0,-1 SCROLL (640,100)-(0,640),0,1 NEXT x bild: MENU 5,0,1 COLOR 2,10 LOCATE 4,7 : PRINT "Name :"; LOCATE 6,7 : PRINT "Vorname :"; LOCATE 8,7 : PRINT "Strasse :"; LOCATE 10,7 : PRINT "Wohnort :"; LOCATE 12,7 : PRINT "Telefon :"; LOCATE 15,7 : PRINT "Info :"; bild1: LINE (1,192)-(9,202),2,bf LINE (1,191)-(7,199),9,bf LINE (95,163)-(170,183),13,bf LINE (265,163)-(365,183),12,bf LINE (435,163)-(535,183),13,bf LINE (90,160)-(165,180),2,bf LINE (260,160)-(360,180),2,bf LINE (430,160)-(530,180),2,bf LINE (206,135)-(410,144),6,B COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Funktion anklicken " LOCATE 22,14 : PRINT "Lesen "; LOCATE 22,35 : PRINT "Schreiben"; LOCATE 22,58 : PRINT "Suchen"; COLOR 8,10 LOCATE 25,3 : PRINT "Notaus"; COLOR 1,2 mausabf1: ON MENU GOSUB menue ON MOUSE GOSUB maus1 MOUSE ON MENU ON GOTO mausabf1 menue: pull=MENU(0) punkt=MENU(1) IF pull=5 THEN IF punkt=1 THEN schreibmaschine IF punkt=2 THEN briefkopf END IF RETURN maus1: test=MOUSE(0) x=MOUSE(1) y=MOUSE(2) IF x>1 AND x<9 AND y>192 AND y<200 THEN aus IF x>90 AND x<165 AND y>160 AND y<180 THEN lesen IF x>265 AND x<360 AND y>160 AND y<180 THEN schreiben IF x>430 AND x<530 AND y>160 AND y<180 THEN suchen RETURN lesen: MENU OFF A=1 IF sl<>1 THEN GOSUB anzahlsatz CLOSE 1 OPEN "r",#1,"adressdatei.rel",195 FIELD #1,20 AS nname$,20 AS vorname$,30 AS strasse$,30 AS wohnort$,15 AS telefon$,80 AS info$ LOCATE 18,27 : PRINT " " LINE (90,160)-(165,180),1,bf COLOR 2,1 LOCATE 22,14 : PRINT "Lesen"; COLOR 1,2 GOSUB fenster1 mausabf2: ON MOUSE GOSUB maus2 MOUSE ON GOTO mausabf2 maus2: COLOR 1,2 test=MOUSE(0) x=MOUSE(1) y=MOUSE(2) IF x>25 AND x<40 AND y>10 AND y<15 THEN A=A-1 IF A=0 THEN A=1 COLOR 1,2 LOCATE 18,40 : PRINT A;: PRINT " " END IF IF x>60 AND x<75 AND y>10 AND y<15 THEN A=A+1 IF A>satz THEN A=satz+1 COLOR 1,2 LOCATE 18,27 :PRINT "Adressnummer zu hoch"; GOTO mausabf2 END IF COLOR 1,2 LOCATE 18,40 : PRINT A; :PRINT " " END IF IF x>42 AND x<57 AND y>15 AND y<25 THEN GOSUB aendern IF x>25 AND x<40 AND y>25 AND y<30 THEN lesen1 IF x>60 AND x<75 AND y>25 AND y<30 THEN CLOSE 1 WINDOW CLOSE 3 WINDOW 2 LINE (90,160)-(165,180),2,bf GOSUB fuellen COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Funktion anklicken " LOCATE 22,14 : PRINT "Lesen "; GOTO mausabf1 END IF RETURN lesen1: GET #1,A gela=A IF EOF(1)=-1 THEN mausabf2 COLOR 3,10 LOCATE 4,17 : PRINT nname$ LOCATE 6,17 : PRINT vorname$ LOCATE 8,17 : PRINT strasse$ LOCATE 10,17 : PRINT wohnort$ LOCATE 12,17 : PRINT telefon$ LOCATE 15,17 : PRINT info$ enname$=nname$ evorname$=vorname$ estrasse$=strasse$ ewohnort$=wohnort$ etelefon$=telefon$ einfo$=info$ COLOR 2,1 IF ae=0 THEN RETURN GOTO mausabf2 schreiben: MENU OFF LINE (260,160)-(360,180),1,bf COLOR 2,1 LOCATE 22,35 : PRINT "Schreiben"; COLOR 1,2 eingabe: IF sl<>1 THEN GOSUB anzahlsatz OPEN "r",#1,"adressdatei.rel",195 FIELD #1,20 AS nname$,20 AS vorname$,30 AS strasse$,30 AS wohnort$,15 AS telefon$,80 AS info$ eingabe1: LOCATE 18,27 : PRINT " Adresse eingeben " COLOR 1,10 LOCATE 4,17 : PRINT sp$ LOCATE 6,17 : PRINT sp$ LOCATE 8,17 : PRINT sp$ LOCATE 10,17 : PRINT sp$ LOCATE 12,17 : PRINT sp$ LOCATE 15,17 : PRINT sp$ LOCATE 4,17 : LINE INPUT ename$ IF ename$="e" THEN LOCATE 4,17 : PRINT " " CLOSE 1 LINE (260,160)-(360,180),2,bf COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Funktion anklicken " LOCATE 22,35 : PRINT "Schreiben"; GOTO mausabf1 END IF LOCATE 6,17 : LINE INPUT evorname$ LOCATE 8,17 : LINE INPUT estrasse$ LOCATE 10,17 : LINE INPUT ewohnort$ LOCATE 12,17 : LINE INPUT etelefon$ LOCATE 15,17 : LINE INPUT einfo$ COLOR 1,2 LOCATE 18,27 : PRINT " Eingabe korrekt (j/n) " schleife: tast$=INKEY$ : IF tast$<>"j" AND tast$<>"n" THEN schleife IF tast$="j" THEN LSET nname$=ename$ LSET vorname$=evorname$ LSET strasse$=estrasse$ LSET wohnort$=ewohnort$ LSET telefon$=etelefon$ LSET info$=einfo$ satz=satz+1 PUT #1,satz ta$=INKEY$ GOTO schleife1 END IF IF tast$="n" THEN LOCATE 18,27 : PRINT " Adresse eingeben " GOTO eingabe1 END IF schleife1: LOCATE 18,27 : PRINT " weitere Eingaben (j/n) " tast$=INKEY$ : IF tast$<>"j" AND tast$<>"n" THEN schleife1 IF tast$="j" THEN LOCATE 18,27 : PRINT " Adresse eingeben " GOTO eingabe1 END IF IF tast$="n" THEN CLOSE 1 GOSUB anzahlsatzsp LINE (260,160)-(360,180),2,bf COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Funktion anklicken " LOCATE 22,35 : PRINT "Schreiben"; GOTO mausabf1 END IF suchen: MENU OFF OPEN "r",#1,"adressdatei.rel",195 FIELD #1,20 AS nname$,20 AS vorname$,30 AS strasse$,30 AS wohnort$,15 AS telefon$,80 AS info$ LINE (430,160)-(530,180),1,bf COLOR 2,1 LOCATE 22,58: PRINT " Suchen"; COLOR 1,2 FOR x=0 TO 199 gef(x)=0 NEXT x x=0 suchen0: COLOR 1,10 LOCATE 4,17 : PRINT sp$ LOCATE 6,17 : PRINT sp$ LOCATE 8,17 : PRINT sp$ LOCATE 10,17 : PRINT sp$ LOCATE 12,17 : PRINT sp$ LOCATE 15,17 : PRINT sp$ COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Suchwert eingeben " suchene: zeile=2 FOR la=0 TO 5 zeile=zeile+2 IF zeile=14 THEN zeile=15 LOCATE zeile,17 : LINE INPUT eingabe$ IF eingabe$="ˆ" THEN COLOR 10,10 LOCATE CSRLIN-1,17 : PRINT " " CLOSE 1 LINE (430,160)-(530,180),2,bf COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Funktion anklicken " LOCATE 22,58 : PRINT "Suchen"; GOTO mausabf1 END IF IF eingabe$<>"" THEN suchen2 NEXT la COLOR 1,2 GOTO suchene suchen2: ss=1 IF sl<>1 THEN GOSUB anzahlsatz suchen3: IF la=0 THEN GET #1,ss wert=INSTR(nname$,eingabe$) IF wert>0 THEN gef(x)=ss x=x+1 GOTO suchen4 END IF END IF IF la=1 THEN GET #1,ss wert=INSTR(vorname$,eingabe$) IF wert>0 THEN gef(x)=ss x=x+1 GOTO suchen4 END IF END IF IF la=2 THEN GET #1,ss wert=INSTR(strasse$,eingabe$) IF wert>0 THEN gef(x)=ss x=x+1 GOTO suchen4 END IF END IF IF la=3 THEN GET #1,ss wert=INSTR(wohnort$,eingabe$) IF wert>0 THEN gef(x)=ss x=x+1 GOTO suchen4 END IF END IF IF la=4 THEN GET #1,ss wert=INSTR(telefon$,eingabe$) IF wert>0 THEN gef(x)=ss x=x+1 GOTO suchen4 END IF END IF IF la=5 THEN GET #1,ss wert=INSTR(info$,eingabe$) IF wert>0 THEN gef(x)=ss x=x+1 GOTO suchen4 END IF END IF suchen4: ss=ss+1 IF ss>satz THEN suchen5 GOTO suchen3 suchen5: IF gef(0)=0 THEN CLOSE 1 COLOR 1,2 LOCATE 18,27 : PRINT "Keine passende Adresse " GOTO suchen END IF suchen6: COLOR 1,2 LOCATE 18,27 : PRINT x" Adressen gefunden " z=x-1 x=0 suchen7: tast$=INKEY$ : IF tast$<>CHR$(28) AND tast$<>CHR$(27) AND tast$<>CHR$(29) AND tast$<>CHR$(136) AND tast$<>CHR$(137) THEN suchen7 IF tast$=CHR$(29) THEN x=x+1 : GOTO suchen8 IF tast$=CHR$(28) THEN x=x-1 : GOTO suchen8 IF tast$=CHR$(27) THEN CLOSE 1 :GOTO suchen IF tast$=CHR$(136) THEN LINE (430,160)-(530,180),2,bf COLOR 1,2 LOCATE 18,27 : PRINT "Bitte Funktion anklicken " LOCATE 22,58 : PRINT "Suchen"; CLOSE 1 GOTO mausabf1 END IF IF tast$=CHR$(137) THEN LPRINT nname$ : LPRINT vorname$ LPRINT wohnort$ : LPRINT strasse$ LPRINT telefon$ GOTO suchen7 END IF suchen8: IF x>z THEN x=x-1 IF x<0 THEN x=x+1 COLOR 1,2 LOCATE 18,27 : PRINT "Adresse " gef(x) " " GET #1,gef(x) COLOR 4,10 LOCATE 4,17 : PRINT nname$ LOCATE 6,17 : PRINT vorname$ LOCATE 8,17 : PRINT strasse$ LOCATE 10,17 : PRINT wohnort$ LOCATE 12,17 : PRINT telefon$ LOCATE 15,17 : PRINT info$ GOTO suchen7 aendern: LOCATE 18,27 : PRINT "Wollen Sie etwas ändern " aendern0: tast$=INKEY$ : IF tast$<>"j" AND tast$<>"n" THEN aendern0 IF tast$="j" THEN IF gela<>A THEN ae=0 GOSUB lesen1 ae=1 GOTO aendern1 END IF END IF IF tast$="n" THEN : LOCATE 18,27 :PRINT "Adressnummer "A" ":RETURN aendern1: WINDOW CLOSE 3 GOSUB fuellen WINDOW 2 COLOR 1,2 LOCATE 18,27 : PRINT "Änderung " LOCATE 4,17 : LINE INPUT enname1$ IF enname1$<>"" THEN enname$=enname1$ LOCATE 6,17 : LINE INPUT evorname1$ IF evorname1$<>"" THEN evorname$=evorname1$ LOCATE 8,17 : LINE INPUT estrasse1$ IF estrasse1$<>"" THEN estrasse$=estrasse1$ LOCATE 10,17 : LINE INPUT ewohnort1$ IF ewohnort1$<>"" THEN ewohnort$=ewohnort1$ LOCATE 12,17 : LINE INPUT etelefon1$ IF etelefon1$<>"" THEN etelefon$=etelefon1$ LOCATE 15,17 : LINE INPUT einfo1$ IF einfo1$<>"" THEN einfo$=einfo1$ COLOR 1,2 LOCATE 18,27 : PRINT " Eingabe korrekt " schleife2: tast$=INKEY$ : IF tast$<>"j" AND tast$<>"n" THEN schleife2 IF tast$="j" THEN LSET nname$=enname$ LSET vorname$=evorname$ LSET strasse$=estrasse$ LSET wohnort$=ewohnort$ LSET telefon$=etelefon$ LSET info$=einfo$ PUT #1,A GOSUB fenster1 RETURN END IF IF tast$="n" THEN aendern anzahlsatz: sl=1 OPEN "r",#2,"satzanzahl.rel",3 FIELD #2,3 AS satz$ GET #2 satz=VAL(satz$) IF satz <0 THEN COLOR 1,2 LOCATE 18,27 : PRINT "Keine Adresse vorhanden " GOTO bild1 END IF CLOSE 2 RETURN anzahlsatzsp: asatz$=STR$(satz) OPEN "r",#2,"satzanzahl.rel",3 FIELD #2,3 AS satz$ LSET satz$=asatz$ PUT #2 CLOSE 2 RETURN schreibmaschine: CLOSE 1,2,3 SCREEN 3,640,256,2,2 WINDOW 4,"SCHREIBMASCHINE",,0,3 MENU 5,0,0 PALETTE 0,0.1,0.1,0.1 COLOR 1 I$="" OPEN "KYBD:" FOR INPUT AS 1 OPEN "SCRN:" FOR OUTPUT AS 2 OPEN "LPT1:" FOR OUTPUT AS 3 WHILE I$<> CHR$(138) I$=INPUT$(1,1) PRINT #2,I$; IF I$=CHR$(13) THEN I$=CHR$(10) IF I$=CHR$(8) THEN I$=CHR$(127) PRINT #3,I$; WEND CLOSE 1,2,3 SCREEN CLOSE 3 WINDOW CLOSE 3 MENU 5,0,1 GOTO mausabf1 briefkopf: SCREEN 4,640,240,2,2 WINDOW 6," Briefkopf ",(0,0)-(630,120),0,4 PALETTE 0,0.1,0.1,0.1 GOSUB anzahlsatz CLS COLOR 2,0 briefkopf1: COLOR 0,2 CLS LOCATE 13,2 : INPUT "Absender(Adressennr.)?: ",A$ IF A$="e" THEN SCREEN CLOSE 4 WINDOW CLOSE 6 GOTO mausabf1 END IF A=VAL(A$) IF A<1 THEN briefkopf1 IF A>satz THEN briefkopf1 briefkopf2: LOCATE 13,2 : INPUT "Empfänger(Adressennr.)?: ",E$ E=VAL(E$) IF E<1 THEN briefkopf2 IF E>satz THEN briefkopf2 OPEN "r",#1,"adressdatei.rel",195 FIELD #1,20 AS nname$,20 AS vorname$,30 AS strasse$,30 AS wohnort$,15 AS telefon$,80 AS info$ GET#1,A N=INSTR(nname$," ") IF N<>0 THEN dname$=MID$(nname$,1,N) :ELSE dname$=nname$ N=INSTR(vorname$," ") IF N<>0 THEN dvorname$=MID$(vorname$,1,N) :ELSE dname$=nname$ N=INSTR(strasse$," ") IF N<>0 THEN dstrasse$=MID$(strasse$,1,N) :ELSE dname$=nname$ N=INSTR(wohnort$," ") IF N<>0 THEN dwohnort$=MID$(wohnort$,1,N) :ELSE dname$=nname$ LOCATE 1,2 : COLOR 3 : PRINT "Absender :" LOCATE 2,2 : COLOR 1: PRINT dname$","; PRINT dvorname$ LOCATE 3,2 : PRINT dstrasse$ LOCATE 5,2 : PRINT dwohnort$ GET 1,E N=INSTR(nname$," ") IF N<>0 THEN dename$=MID$(nname$,1,N) :ELSE dname$=nname$ N=INSTR(vorname$," ") IF N<>0 THEN devorname$=MID$(vorname$,1,N) :ELSE dname$=nname$ N=INSTR(strasse$," ") IF N<>0 THEN destrasse$=MID$(strasse$,1,N) :ELSE dname$=nname$ N=INSTR(wohnort$," ") IF N<>0 THEN dewohnort$=MID$(wohnort$,1,N) :ELSE dname$=nname$ LOCATE 1,40 : COLOR 3 : PRINT "Empfänger :" LOCATE 2,40 : COLOR 1: PRINT dename$","; PRINT devorname$ LOCATE 3,40 : PRINT destrasse$ LOCATE 5,40 : PRINT dewohnort$ LOCATE 13,2 : COLOR 0,2 : PRINT "Adressen korekt(j/n)? " tast1: tast$=INKEY$ : IF tast$<>"j" AND tast$<>"n" THEN tast1 IF tast$="j"THEN CLOSE OPEN "PAR:" FOR OUTPUT AS 2 PRINT #2,dname$","; PRINT #2,dvorname$ PRINT #2,dstrasse$ PRINT #2," " PRINT #2,dwohnort$ PRINT #2," " PRINT #2," " PRINT #2," " PRINT #2," " PRINT #2, CHR$(27);CHR$(83);CHR$(49);CHR$(15);CHR$(27);CHR$(45);CHR$(49) PRINT #2,dname$","; PRINT #2,dvorname$","; PRINT #2,dstrasse$"," ; PRINT #2,dwohnort$;CHR$(27);CHR$(84);CHR$(18);CHR$(27);CHR$(45);CHR$(48) PRINT #2,dename$", "; PRINT #2,devorname$ PRINT #2,destrasse$ PRINT #2," " PRINT #2,dewohnort$ CLOSE 1,2 END IF IF tast$="n" THEN CLOSE 1 : GOTO briefkopf1 CLS SCREEN CLOSE 4 WINDOW CLOSE 6 GOTO mausabf1 fuellen: COLOR 10,2 AREA (480,80) AREA (610,80) AREA (610,150) AREA (480,150) AREAFILL COLOR 2,1 RETURN fenster1: WINDOW 3,,(500,100)-(600,130),0,2 COLOR 10,2 LOCATE 2,4 : PRINT "Z."; LOCATE 2,8 : PRINT "V."; COLOR 1,2 LOCATE 3,5 : PRINT " Ä " COLOR 10,2 LOCATE 4,4 : PRINT "L."; LOCATE 4,8 : PRINT "E."; WINDOW OUTPUT 2 COLOR 1,2 LOCATE 18,27 :PRINT "Adressnummer "A" " RETURN stil: DECLARE FUNCTION OpenFont&() LIBRARY DECLARE FUNCTION AskSoftStyle&() LIBRARY LIBRARY "Lib/graphics.library" tz&(0)=SADD(Schriftname$) tz&(1)=7*(2^16) font&=OpenFont&(VARPTR(tz&(0))) IF font& <> 0 THEN CALL SetFont&(WINDOW(8),font&) zt%=AskSoftStyle&(WINDOW(8)) CALL SetSoftStyle&(WINDOW(8),2,zt%) adr&=SADD(txt$(2)) lg&=LEN(txt$(2)) CALL Move& (WINDOW(8),2,(9*20)+10) CALL Text& (WINDOW(8),adr&,lg&) CALL CloseFont&(font&) LIBRARY CLOSE RETURN END LIST aus: LINE (1,191)-(7,199),10,bf LINE (1,192)-(9,202),9,bf FOR x=0 TO 100 : NEXT x aadresse=16515072 CALL aadresse